'use strict';

const xtpl = require('xtpl');
const path = require('path');
const md5 = require('md5');
const captchapng = require('captchapng');
const db = require(path.join(__dirname,'../config/config'));
const CommonHelper = require(path.join(__dirname,"../helpers/commonHelpers"));


module.exports.gradeList = function(req,res){
    //判断是否登录
    CommonHelper.isLogin(req,res);
    //当前页码值
    const page = parseInt(req.query.page || 1);

    //每页显示多少条
    const limit = 6;

    //偏移量
    const start = (page-1)*limit;

    let where = 1;

    db.table('grade').where(where).count('*').then(function(count){

        //总页数
        const totalPage = count % limit == 0 ? count/limit : parseInt(count/limit)+1;

        const totalPageArray = [];

        //分页
        for(var i=1;i<=totalPage;i++)
        {
            totalPageArray.push(i);
        }

        //查询数据
        db.table('grade').where(where).order('grade_id DESC').limit(start,limit).select().then(function(grade_list){

            let data = {
                array:grade_list,
                count:count,
                totalPageArray:totalPageArray,
                page:page,
                totalPage:totalPage,
            };
            CommonHelper.renderFile(req,res,"gradeList.html",data);
        });
    });
};

module.exports.gradeAdd = function(req,res){
    //判断是否登录
    CommonHelper.isLogin(req,res);


        db.table('grade').select().then(function(grade_list){
            let Data = {
                "grade_list":grade_list
            };

            CommonHelper.renderFile(req,res,"gradeAdd.html",Data);
        });

};

module.exports.gradeAddForm = function(req,res)
{
    //判断是否登录
    CommonHelper.isLogin(req,res);

    //先获取表单的数据

    //先检测一下 该用户是否存在
    let grade_name = req.body.grade_name;
    db.table('grade').where(`grade_name = '${grade_name}'`).find().then(function(data){
        if(JSON.stringify(data) != "{}")
        {
            res.setHeader("Content-Type","text/html;charset=utf-8");
            res.end("<script>alert('该班级已存在');location.href='/grade/gradeAdd';</script>");
        }else{
            let data = {
                "grade_name":req.body.grade_name
            };

            db.table('grade').add(data).then(function(insertId){
                if(insertId)
                {
                    //重定向
                    res.redirect(`/grade/gradeList`);
                    return false;
                }else{
                    //重定向
                    res.redirect(`/grade/gradeAdd`);
                    return false;
                }
            });
        }
    });
};

module.exports.gradeEdit = function(req,res)
{
    //判断是否登录
    CommonHelper.isLogin(req,res);

    let grade_id = req.query.grade_id;

    if(!grade_id)
    {
        //重定向
        res.redirect(`/grade/gradeList`);
        return false;
    }

    db.table('grade').where(`grade_id = ${grade_id}`).find().then(function(grade_list){

        let Data = {
            "grade":grade_list
        };

        CommonHelper.renderFile(req,res,"gradeEdit.html",Data);
    });
};

module.exports.gradeEditForm = function(req,res)
{
    //判断是否登录
    CommonHelper.isLogin(req,res);

    let grade_id = req.query.grade_id;

    if(!grade_id)
    {
        //重定向
        res.redirect(`/grade/gradeList`);
        return false;
    }

    db.table('grade').where(`grade_id = ${grade_id}`).find().then(function(grade_list){

        let data = {
            "grade_name":req.body.grade_name
        };

        db.table('grade').where(`grade_id = ${grade_id}`).update(data).then(function(affectId){
            if(affectId)
            {
                //重定向
                res.redirect(`/grade/gradeList`);
                return false;
            }else{
                //重定向
                res.redirect(`/grade/gradeEdit?grade_id=${grade_id}`);
                return false;
            }
        });
    });
};

module.exports.gradeDelete = function(req,res){

    let grade_id = req.query.grade_id;

    if(!grade_id)
    {
        //重定向
        res.redirect(`/grade/gradeList`);
        return false;
    }
    
    db.table('grade').where(`grade_id = ${grade_id}`).delete().then(function(affectId){
        if(affectId){
            console.log('删除成功');
            //重定向
            res.redirect(`/grade/gradeList`);
            return false;
        }else{
            console.log('删除失败');
            //重定向
            res.redirect(`/grade/gradeList`);
            return false;
        }
    });
};